import { getMapStyleMgr, changeMapStyleMgr, removeMapMgr, originalStyleMgr, restoreMapStyleMgr } from "./tool";
import { GaodeSatelliteURL, defaultCoordinates, defaultZoom, OceanRenderURL } from "../../mapbox_config/mapConfigManager";
let map: null = null; // 定义一个全局变量用于存储地图实例
// 导出一个名为initMap的函数，该函数接受一个参数mapContainer，用于初始化地图
export const initMap = (mapContainer: string) => {
    if (map) {
        map.remove(map);
        map = null;
    }
    // 定义默认的地图配置项
    const defaultOptions = {
        // 地图容器
        container: mapContainer,
        // 地图样式
        style: getMapStyleMgr(OceanRenderURL),
        // 地图中心点
        center: defaultCoordinates,
        // 地图缩放级别
        zoom: defaultZoom,
        // 是否开启抗锯齿
        antialias: true,
        // 是否保留绘图缓冲区
        preserveDrawingBuffer: true,
        dragRotate: false, // 启用拖拽旋转
        dragPan: true // 启用拖拽平移,
    }
    // 创建地图实例
    map = new mapboxgl.Map(defaultOptions);
    // map.on('load', () => {
    //     console.log('地图加载完成');
    //     // 可以在这里添加其他初始化操作

    // });
   return map;
}

// 改变地图样式
export const changeMapStyle = (mapStyle: string) => {
    if (!map) {
        console.error("地图未初始化");
        return;
    }
    changeMapStyleMgr(map, mapStyle);
}

// 删除地图
export const removeMap = () => {
    if (!map) {
        console.error("地图未初始化");
        return;
    }
    removeMapMgr(map)
}
// 导出一个函数，用于获取地图
export const getMap = () => {
    if (!map) {
        console.error("地图未初始化");
        return;
    }
    // 返回地图
    return map;
}



